/*
 * ExitListener.h
 */

#ifndef EXITLISTENER_H_
#define EXITLISTENER_H_

#include "../common/LogFile.h"
#include "../common/Socket.h"

class ExitListener {
private:
	bool socketListening;
	Port listeningPort;
	LogFile& logFile;
public:
	/** Crea una instancia de la clase en el modo que corresponda.
	 * En caso de encontrar un "-q" en algún argv[], escucha evento de salida
	 * por stdin. Caso contrario, escucha en por puerto de control.
	 */
	ExitListener(int argc, char* argv[], Port ctrlPort, LogFile &logFile);

	virtual ~ExitListener();

	/**
	 * Bloquea la ejecución hasta escuchar un evento de salida por stdin o
	 * puerto de control según se haya instanciado la clase.
	 */
	void waitForExitEvent();
};

#endif /* EXITLISTENER_H_ */
